Various data processing systems have been developed including storage systems, cellular telephone systems, and radio transmission systems. In such systems, data is transferred from a sender to a receiver via a medium. For example, in a storage system, data is sent from a sender (e.g., a write function) to a receiver (e.g., a read function) via a storage medium. As information is stored and transmitted in the form of digital data, errors are introduced that, if not corrected, can corrupt the data and render the information unusable. The effectiveness of any transfer is impacted by any losses in data caused by various factors.
Consequently, error correcting systems have been developed to detect and correct errors of digital data. For example, Inter-Symbol Interference (ISI) caused by the overlap of information pulses when magnetic transitions in a hard disk drive (HDD) are written too close together can introduce errors in data read from the HDD. Consequently, read channels used in HDDs account for ISI by employing Partial Response Maximum Likelihood (PRML) techniques that use equalization circuits to shape the signal from the read head of the HDD into a mathematical form called a target polynomial, which describes how much each bit overlaps into adjacent bits. Target polynomials are generally programmable and are chosen so that noise in the final equalized signal is uncorrelated from bit to bit. Under this condition, a Viterbi detector is used to find the most likely bit sequence or path that would have generated the read signal through use of a least-squared error metric. In this manner, the read channel accounts for ISI, allowing linear density to be increased.